package com.ry.bhwktapp.home.ui

import android.annotation.SuppressLint

//TODO  kt语言中的Set的创建和取值
@SuppressLint("NewApi")
fun main() {
    val of = setOf<String>("aa", "dd", "dd", "kk")//重复元素会覆盖 只会显示三个元素

    //取值 elementAt方式（会引起数组越界异常）
    println(of.elementAt(0))
    println(of.elementAt(1))
    println(of.elementAt(2))
//    println(of.elementAt(3))

    //取值 elementAtOrElse 安全的取值方式
    println(of.elementAtOrElse(0){"空值"})
    println(of.elementAtOrElse(1){"空值"})
    println(of.elementAtOrElse(2){"空值"})
    println(of.elementAtOrElse(3){"空值"})

    //取值 elementAtOrNull（会引起数组越界异常）
    println(of.elementAtOrNull(0))
    println(of.elementAtOrNull(1))
    println(of.elementAtOrNull(2))
    println(of.elementAtOrNull(3))

    //TODO set集合推荐使用上面第二、三两种方式！！！

    //TODO 配合空合并符使用
    println(of.elementAtOrNull(5)?:"少年你越界了！")


    //TODO  set集合的可变集合使用
    val mutableSetOf = mutableSetOf("宋江","宋清","宋万","宋神宗","送礼")
    //添加元素
    mutableSetOf.add("宋涛")
    mutableSetOf+= "宋国清"
    mutableSetOf-= "宋国清"
    mutableSetOf.remove("宋涛")
    mutableSetOf.removeIf{
        it.contains("宋")
    }
    println(mutableSetOf)


}